package com.aiti.lulian.dto.crm;

import cn.hutool.core.date.DateTime;
import com.aiti.base.core.base.dto.PageDto;
import com.aiti.lulian.entity.crm.CrmFollowRecord;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@ApiModel("CRM跟进记录DTO")
@Data
public class CrmFollowRecordDto extends PageDto {

    @ApiModelProperty("主键")
    private String baseId;

    /**
     * '1'：客户，'2'：商机，'3'：合同
     */
    @ApiModelProperty("跟进对象类型")
    private String objectType;

    @ApiModelProperty("跟进对象ID")
    private String objectId;

    @ApiModelProperty("跟进类型")
    private String followType;

    @ApiModelProperty("跟进内容")
    private String content;

    @ApiModelProperty("客户：跟进状态，商机：销售阶段，合同：合同状态")
    private String status;

    @ApiModelProperty("关联的联系人姓名")
    private String linkman;

    @ApiModelProperty("关联的联系人ID")
    private String linkmanId;

    @ApiModelProperty("实际跟进时间")
    private Date practicalFollowTime;

    @ApiModelProperty("下次跟进时间")
    private Date nextFollowTime;

    @ApiModelProperty("创建者")
    private String creator;

    @ApiModelProperty("当前登录人的用户ID")
    private String userId;

    @ApiModelProperty("当前登录人的企业ID")
    private String enterpriseId;

    /**
     * '0'：否，'1'：是
     */
    @ApiModelProperty("是否划入公海")
    private String isPublic;

    /**
     * '2'：今天
     * '3'：本周
     * '4'：上周
     */
    @ApiModelProperty("条件查询：写跟进时间的日期类型")
    private String baseCreateTimeDateType;

    @ApiModelProperty("条件查询：根据指定日期类型下的开始时间")
    private DateTime beginBaseCreateTime;

    @ApiModelProperty("条件查询：根据指定日期类型下的结束时间")
    private DateTime endBaseCreateTime;

    @ApiModelProperty("条件查询：写跟进时间（开始）")
    private Date baseCreateTimeBegin;

    @ApiModelProperty("条件查询：写跟进时间（结束）")
    private Date baseCreateTimeEnd;

    /**
     * '2'：今天
     * '3'：本周
     * '4'：上周
     */
    @ApiModelProperty("条件查询：下次跟进时间的日期类型")
    private String nextFollowTimeDateType;

    @ApiModelProperty("条件查询：根据指定日期类型下的开始时间")
    private DateTime beginNextFollowTime;

    @ApiModelProperty("条件查询：根据指定日期类型下的结束时间")
    private DateTime endNextFollowTime;

    @ApiModelProperty("条件查询：下次跟进时间（开始）")
    private Date nextFollowTimeBegin;

    @ApiModelProperty("条件查询：下次跟进时间（结束）")
    private Date nextFollowTimeEnd;

    @ApiModelProperty("条件查询：填写人所属部门")
    private String deptId;

    @ApiModelProperty("批量删除的参数传输集合")
    private List<CrmFollowRecord> followRecords;

    @ApiModelProperty("跟进记录ID参数集")
    private List<String> followRecordIds;

    @ApiModelProperty("当前登录人的数据权限")
    private String scope;

    @ApiModelProperty("查询参数：用户ID集")
    private List<String> userIds;

    private String followUpObj;
}